ExcelVBAPartsCollection Home Excel Reference Manual DownLoad My Profile
Menu Back Next Links Excel Function Manual Myself My BBS


範囲選択の応用

 





選択領域内での範囲選択

1 選択範囲内での列の選択

処理内容:選択範囲内(A1が左上端セル)の2列目(B列)を選択します。
Sub Selected_Select1()
Worksheets("Sheet1").Select
Range("A1").CurrentRegion.Columns(2).Select
End Sub


処理内容:選択範囲内(C1が左上端セル)の2列目(D列)を選択します。
Sub Selected_Select2()
Worksheets("Sheet1").Select
Range("C1").CurrentRegion.Columns(2).Select
End Sub


処理内容:選択範囲内の変数で指定した列を選択します。
Sub Selected_Select3()
Dim Retsu As Integer
Worksheets("Sheet1").Select
Retsu = 2
Range(Range("A1").CurrentRegion.Columns(Retsu).Address).Select
End Sub


処理内容:選択範囲内(A1が左上端セル)の左端列を選択します。
Sub Selected_Select4()
Worksheets("Sheet1").Select
Range("A1").CurrentRegion.Columns(1).Select
End Sub


処理内容:選択範囲内(A1が左上端セル)の右端列を選択します。
Sub Selected_Select5()
Worksheets("Sheet1").Select
Range("A1").CurrentRegion.Select
Selection.Columns(Selection.Columns.Count).Select
End Sub

2 選択範囲内での行の選択

処理内容:選択範囲内(A1が左上端セル)の3行目を選択します。
Sub Selected_Select6()
Worksheets("Sheet1").Select
Range("A1").CurrentRegion.Rows(3).Select
End Sub


処理内容:選択範囲内(C3が左上端セル)の3行目(シートの5行目になる)を選択します。
Sub Selected_Select7()
Worksheets("Sheet1").Select
Range("C3").CurrentRegion.Rows(3).Select
End Sub


処理内容:選択範囲内の変数で指定した列を選択します。
Sub Selected_Select8()
Dim Gyou As Integer
Worksheets("Sheet1").Select
Gyou = 2
Range(Range("A1").CurrentRegion.Rows(Gyou).Address).Select
End Sub


処理内容:選択範囲内(A1が左上端セル)の上端行を選択します。
Sub Selected_Select9()
Worksheets("Sheet1").Select
Range("A1").CurrentRegion.Rows(1).Select
End Sub


処理内容:選択範囲内(A1が左上端セル)の下端行を選択します。
Sub Selected_Select10()
Worksheets("Sheet1").Select
Range("A1").CurrentRegion.Select
Selection.Rows(Selection.Rows.Count).Select
End Sub

3 選択範囲内でセル範囲を選択

処理内容:選択範囲内(C3:E8)のB2(結果は"D4"を選択)を選択します。
Sub Selected_Select11()
Worksheets("Sheet1").Select
Range("C3:E8").Range("B2").Select
End Sub


処理内容:選択範囲内(C3が左上端セル)のB2(結果は"D4"を選択)を選択します。
Sub Selected_Select12()
Worksheets("Sheet1").Select
Range("C3").CurrentRegion.Range("B2").Select
End Sub





リスト範囲の終端セルを選択

1 基準セルからリストの終端セルを選択

処理内容:セルD5の列の上端を選択します。
Sub TopLast_Select1()
Worksheets("Sheet1").Select
Range("D5").End(xlUp).Select
End Sub


処理内容:セルD5の列の下端を選択します。
Sub TopLast_Select2()
Worksheets("Sheet1").Select
Range("D5").End(xlDown).Select
End Sub


処理内容:セルD5の行の左端を選択します。
Sub TopLast_Select3()
Worksheets("Sheet1").Select
Range("D5").End(xlToLeft).Select
End Sub


処理内容:セルD5の行の右端を選択します。
Sub TopLast_Select4()
Worksheets("Sheet1").Select
Range("D5").End(xlToRight).Select
End Sub


処理内容:リスト範囲の右下端を選択します。(使用されたセル範囲の右下端セルを選択)
Sub TopLast_Select5()
Worksheets("Sheet1").Select
Range("A1").SpecialCells(xlLastCell).Select
End Sub

2 シートの終端からリスト範囲の終端セルを選択

処理内容:リスト1列目最終行を選択します。
Sub TopLast_Select1()
Worksheets("Sheet1").Select
Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Select
End Sub


処理内容:リスト1行目最終列を選択します。
Sub TopLast_Select2()
Worksheets("Sheet1").Select
Cells(1,ActiveSheet.Columns.Count).End(xlToLeft).Select
End Sub





選択範囲の移動

 選択されているセルを上下(行間)または左右(列間)に移動するときは「基準セル.Offset(移動行数,移動列数)」で指定します。

 上下に移動するときは、移動行数がプラスの数値のときは下へ、マイナスの数値のときは上へ移動します。 左右に移動するときは、移動列数がプラスの数値のときは右へ、マイナスの数値のときは左へ移動します。 移動行数、移動列数が 0 (ゼロ)のときは移動しません。

 また、上下方向にだけ移動するときは、「Offset(移動行数)」のように移動列数を省略することができますが、左右方向にだけ移動するときは「Offset , (移動列数)」のように上下方向の移動行数に代えて「, (カンマ)」を入力してから移動列数を指定します。

 上下・左右両方移動するときは、「Offset(移動行数,移動列数)」のように移動行数と移動列数の間に「, (カンマ)」を入力します。

 なお、複数セル範囲の移動を行うときは、Select メソッドにより範囲を選択します。

1 選択セルの行位置を上下に移動する

処理内容:選択セルの行位置を下へ1行移動します。
Sub cells_offset1()
Range("A1").Select
Selection.Offset(1,0).Select
End Sub


処理内容:選択セルの行位置を下へ1行移動します(省略形)。
Sub cells_offset2()
Range("A1").Select
Selection.Offset(1).Select
End Sub


処理内容:アクティブセルの行位置を下へ1行移動します(省略形)。
Sub cells_offset3()
Range("A1").Activate
Activecell.Offset(1).Activate
End Sub


処理内容:選択セルの行位置を上へ1行移動します(省略形)。
Sub cells_offset4()
Range("A5").Select
Selection.Offset(-1).Select
End Sub

 
2 選択セルの列位置を左右に移動する

処理内容:選択セルの列位置を右へ1列移動します。
Sub cells_offset5()
Range("A1").Select
Selection.Offset(0,1).Select
End Sub


処理内容:選択セルの列位置を右へ1列移動します(省略形)。
Sub cells_offset6()
Range("A1").Select
Selection.Offset(,1).Select
End Sub


処理内容:アクティブセルの列位置を右へ1列移動します(省略形)。
Sub cells_offset7()
Range("A1").Activate
Activecell.Offset(,1).Activate
End Sub


処理内容:選択セルの列位置を左へ1列移動します(省略形)。
Sub cells_offset8()
Range("D1").Select
Selection.Offset(,-1).Select
End Sub
 
3 選択セルの列位置を上下・左右に移動する

処理内容:選択セルの列位置を下へ3行右へ2列移動します。
Sub cells_offset9()
Range("A1").Select
Selection.Offset(3,2).Select
End Sub


処理内容:選択セルの列位置を上へ3行左へ2列移動します。
Sub cells_offset10()
Range("D5").Select
Selection.Offset(-3,-2).Select
End Sub





選択範囲のサイズ変更

 選択されている範囲を拡大または縮小するときは、Resize プロパティーにより、選択する範囲の行数や列数を求めてから変更量を数値で指定してサイズを変更します。
 指定例  Resize(Selection.Rows.Count (変更量), Selection.Columns.Count (変更量),)

 Selection.Rows.Count  ・・・・・ 基準セルの行数。+ 3 ・・・・変更量
 Selection.Columns.Count ・・・・ 基準セルの列数。 - 2 ・・・・変更量

 行の変更量は、プラスのとき下に拡大、マイナスのとき上に縮小します。列の変更量は、プラスのとき右に拡大、マイナスのとき左に縮小します。

 行数だけを変更するときは、Resize(Selection.Rows.Count +3).Select
 列数だけを変更するときは、Resize(, Selection.Columns.Count +2).Select

 行数だけの変更の場合は、列数の変更量を省略できますが、列数の変更の場合は、行数の変更量の指定に代えて「, (カンマ)」を入力します。

1 選択範囲の行範囲の拡大・縮小

処理内容:選択範囲の行範囲を2行分拡げます。
Sub cells_Resize1()
Range("A1").CurrentRegion.Select
Selection.Resize(Selection.Rows.Count + 2).Select
End Sub


処理内容:選択範囲の行範囲を1行分狭めます。
Sub cells_Resize2()
Range("A1").CurrentRegion.Select
Selection.Resize(Selection.Rows.Count - 1).Select
End Sub

2 選択範囲の列範囲の拡大・縮小

処理内容:選択範囲の列範囲を2列分拡げます。
Sub cells_Resize3()
Range("A1").CurrentRegion.Select
Selection.Resize(, Selection.Columns.Count + 2).Select
End Sub


処理内容:選択範囲の列範囲を1列分狭めます。
Sub cells_Resize4()
Range("A1").CurrentRegion.Select
Selection.Resize(, Selection.Columns.Count - 1).Select
End Sub

3 選択範囲の行・列範囲の拡大・縮小

処理内容:選択範囲の行範囲を2行、列範囲を3列分拡げます。
Sub cells_Resize5()
Range("A1").CurrentRegion.Select
Selection.Resize(Selection.Rows.Count + 2, Selection.Columns.Count + 3).Select
End Sub


処理内容:選択範囲の行範囲を2行、列範囲を3列分狭めます。
Sub cells_Resize6()
Range("A1").CurrentRegion.Select
Selection.Resize(Selection.Rows.Count - 2, Selection.Columns.Count - 3).Select
End Sub





選択範囲の移動とサイズ変更の同時実行

1 リスト範囲の見出し行以外を選択する

処理内容:選択範囲の行範囲を1行下に移動して、行範囲を1行分狭めます。
Sub cells_Resize7()
Range("A1").CurrentRegion.Select
Selection.Offset(1).Resize(Selection.Rows.Count - 1).Select
End Sub

2 リスト範囲の見出し列以外を選択する

処理内容:選択範囲の行範囲を1列右に移動して、列範囲を1列分狭めます。
Sub cells_Resize8()
Range("A1").CurrentRegion.Select
Selection.Offset(, 1).Resize(, Selection.Columns.Count - 1).Select
End Sub

3 リスト範囲の見出し行・列以外を選択する

処理内容:選択範囲を1行下、1列右に移動して、行範囲を1行分、列範囲を1列分狭めます。
Sub cells_Resize9()
Range("A1").CurrentRegion.Select
Selection.Offset(1, 1).Resize(Selection.Rows.Count - 1, Selection.Columns.Count - 1).Select
End Sub





特定のセルのみ選択(ジャンプ)

 Excel メニューの「編集(E)」「ジャンプ(G)」を選択し、「ジャンプ」ダイアログボックスの「セル選択(S)」ボタンをクリックすると、「選択オプション」ダイアログボックスが表示されます。
 選択項目のオプションボタンをクリックすると、該当するセルだけを選択することができます。

 特定のセルだけを選択するには、「検索範囲.SpecialCells(引数).Select」で指定します。
 
例1:ワークシート「Sheet1」の全セルで、計算式が入力されているセルだけを選択する。
  Sub Test1()
    Worksheets("Sheet1").Select
    Cells.SpecialCells(xlCellTypeFormulas).Select
  End Sub
 
例2:ワークシート「Sheet1」のリスト範囲右下隅のセルを選択する。
  Sub Test2()
    Worksheets("Sheet1").Select
    Range("A1").CurrentRegion.SpecialCells(xlCellTypeLastCell).Select
  End Sub

  式の意味は、
  Cells ・・・ 検索範囲、SpecialCells(引数) ・・・ 選択セルの内容、Select ・・・ 選択実行命令
  SpecialCells の( )内の引数を変更することにより、色々な内容の選択ができます。

選択するセル

SpecialCells の引数

表示形式が設定されているセル xlCellTypeAllFormatConditions
同じ表示形式が設定されているセル xlCellTypeSameFormatConditions
条件付書式が含まれているセル xlCellTypeAllValidation
同じ条件の設定が含まれているセル xlCellTypeSameValidation
空の文字列のセル(空白セル) xlCellTypeBlanks
コメントが含まれているセル xlCellTypeComments
定数が含まれているセル xlCellTypeConstants
定数(エラー値)が含まれているセル xlCellTypeConstants,xlErrors
定数(論理値)が含まれているセル xlCellTypeConstants,xlLogical
定数(数字)が含まれているセル xlCellTypeConstants,xlNumbers
定数(文字列)が含まれているセル xlCellTypeConstants,xlTextValues
数式が含まれているセル xlCellTypeFormulas
使われたセル範囲内の最後のセル xlCellTypeLastCell
すべての可視セル xlCellTypeVisible
A列のうち、セル A4 とは内容が異なるセル Worksheets("TEST").Activate
Set R1 = ActiveSheet.Columns("A"). _
  ColumnDifferences _
  (Comparison:=ActiveSheet.Range("A4"))
R1.Select





セル範囲に名前を付ける(名前の定義)

 セル範囲に名前を付ると、範囲選択や計算式で使用する範囲指定に利用することができます。
1 リスト範囲に名前(名前の定義)を付ける

処理内容:シート「Sheet1」の「E11:E13」に「範囲名」という名前を付けて登録します。
Sub Cells_Name1()
ActiveWorkbook.Names.Add Name:="範囲名",RefersToR1C1:="=Sheet1!R11C5: R13C5 "
End Sub


処理内容:シート「Sheet1」の可変リスト範囲に「ListArea」という名前を付けて登録します。
Sub Cells_Name2()
Range("A1").CurrentRegion.Name="ListArea"
End Sub


処理内容:シート「Sheet1」のA列の可変データ範囲に「A列範囲」という名前を付けて登録します。
Sub Cells_Name3()
Retsu= Range("A1").CurrentRegion.Columns(1).Address(ReferenceStyle:=xlR1C1)
ActiveWorkbook.Names.Add Name:="A列範囲",RefersToR1C1:="=Sheet1!" &Retsu
End Sub

2 名前定義を参照する

処理内容:「ListArea」という名前定義を参照します。
Sub Cells_Name4()
Range("ListArea").Select
End Sub

3 名前定義を削除する

処理内容:「ListArea」という名前定義を削除します。
Sub Cells_Name5()
ActiveWorkbook.Names("ListArea").Delete
End Sub


処理内容:名前(名前定義)を一括削除します。
Sub Cells_Name6()
Dim MyName As Name
For Each MyName In ActiveWorkbook.Names
MyName.Delete
Next
End Sub





Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!